#include <iostream>
#include <stdio.h>
#include <vector>
#include <string.h>
using namespace std;
const int MAXN=750007;
vector<int> m[MAXN];
int p[MAXN];
int bomb0[MAXN], bomb1[MAXN], bomb2[MAXN];
void DFS(int pr, int r) {
    int len=m[r].size();
    p[r]=pr;
    for (int i=0, t; i<len; ++i) {
        t=m[r][i];
        if (t==pr) continue;
        DFS(r, t);
    }
}
inline void BOMB(int r) {
	++bomb0[r];
	++bomb1[p[r]];
	++bomb2[p[p[r]]];
}
int main() {
    int N,Q;
    scanf("%d%d", &N, &Q);
    int st, en, ask;
    for (int i=0; i<N-1; ++i) {
        scanf("%d%d", &st, &en);
        m[st].push_back(en);
        m[en].push_back(st);
    }
    DFS(0,1);
//    cout<<"pa: "<<p[1]<<endl;
    for (int i=0; i<Q; ++i) {
        scanf("%d", &ask);
        BOMB(ask);
//        for (int j=0; j<=N; ++j) printf("%d%c", res[j], (j==N? '\n' : ' '));
        printf("%d\n", bomb0[p[p[ask]]]+bomb0[p[ask]]+bomb1[p[ask]]+bomb1[ask]+bomb2[ask]);
    }
    return 0;
}
